<template>
  <div class="main">
    <el-dialog title="选则我的业务" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
      <span>你的业务</span>
      <div style="position: relative;height: 2vh;"></div>
      <el-radio v-for="(item, index) in list" :key="index" v-model="radio" :label="item.role_id">{{ item.roleName
      }}</el-radio>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="dialogVisibleJudge()">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
  
<script>
import RoleAndRoleApi from '@/api/userzandrolezRequest.js'
import getStorage from '../utils/getStorage'
import router from '@/router/index'
import websockt from '@/api/websockt'
export default {
  // 组件名称
  name: 'myroles',
  // 组件参数 接收来自父组件的数据
  props: {},
  // 局部注册的组件
  components: {},
  // 组件状态值
  data() {
    return {
      //存放查询的值
      list: [],
      //用户ID
      id: 0,
      dialogVisible: true,
      //存放选则的职务
      radio: 0,
    }
  },
  // 计算属性
  computed: {},
  // 侦听器
  watch: {

  },
  // 组件方法
  methods: {
    //查询数量
    fetchData() {
      // 编写一个方法请求后端的接口，把返回的数据赋值list
      RoleAndRoleApi.selectUserRole(this.id).then(response => {
        //把返回的结果赋值模型        
        this.list = response.data;
      })
    },
    // 不允许关闭
    handleClose(done) {
      throw new Error('不允许关闭')
    },
    //选则职务
    dialogVisibleJudge() {
      getStorage.insertroleId(this.radio);
      router.push({
        path: `/hello`,
      });
    }
  },
  // 以下是生命周期钩子   注：没用到的钩子请自行删除
  /**
  * 在实例初始化之后，组件属性计算之前，如data属性等
  */
  beforeCreate() {
  },
  /**
  * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
  */
  created() {
    this.id = getStorage.getAxiosUserId();
    //在创建vue实例后触发初始化钩子函数
    this.fetchData();
  },
  /**
  * 在挂载开始之前被调用：相关的 render 函数首次被调用。
  */
  beforeMount() {

  },
  /**
  * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
  * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
  */
  mounted() {
    websockt.openSocket();
  },
  /**
  * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
  * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
  */
  beforeUpdate() {
  },
  /**
  * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
  * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
  */
  updated() {
  },
  /**
  * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
  */
  activated() {
  },
  /**
  * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
  */
  deactivated() {
  },
  /**
  * 实例销毁之前调用。在这一步，实例仍然完全可用。
  */
  beforeDestroy() {
  },
  /**
  * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
  * 所有的事件监听器会被移除，所有的子实例也会被销毁。
  */
  destroyed() {
  }
}
</script> 
  
  
<style scoped >
.main {
  position: relative;

  width: 99.9vw;
  height: 100%;

}
</style>
  